console.log('王哲很好！！');
console.log('哲书很好！！');
console.log('就可以进行代码开发');
/* 

模块化语法：es6模块化语法 commonjs模块化语法 AMD CMD

模块
函数作用域 funciton fun(){函数数作用域}

commonjs模块化 暴露引入
暴露module.exports = {}
exports.xx = 

引入
require 



模块化语法外面都包裹了一个函数

使用require把该模块同其他模块建立联系
*/
let com1 = require('./commonjs_modules/demo1');
console.log(com1);

let com3 = require('./commonjs_modules/demo3');
console.log(com3);


/* 
开发环境不用老重新启动
package.json webpack.config.js 等配置文件改动项目需重新启动
先终止 ctrl+c
重新启动 npm run xx

*/

/* 
es6模块化语法
暴露：分别暴露 export     统一暴露 export {}  默认暴露export default {}
引入：import  from
*/
/* import {fun1,fun2,fun3} from './es6_module/demo1';
console.log(fun1);
fun2();
fun3(); */
import * as es6Demo1 from './es6_module/demo1';
console.log(es6Demo1);
es6Demo1.fun1();
es6Demo1.fun2();
es6Demo1.fun3();

/* import {foo1,foo2} from './es6_module/demo3';
foo1();
foo2(); */
// 使用该种方式进行引入的作用：减少全局变量污染
import * as es6Demo3 from './es6_module/demo3';
console.log(es6Demo3);
es6Demo3.foo1();
es6Demo3.foo2();

import zihao from './es6_module/demo4';
console.log(zihao);


// css引入
// import './css/index.css';
import './css/less/index.less';

/* 
AMD又称为requirejs

*/

require(['./amd_module/demo1'],function(demo1){
    console.log(demo1);
    console.log(demo1.name);
    demo1.fun();
})
/* cmd  又有人称它为seajs */
/* define(function(require){
    let yangyang = require('./cmd_modules/demo1');
    console.log(yangyang);
}); */


/* 
webpack静态模块打包器
分很多个模块  都同入口文件有直接或者间接的联系 进入webpack 打包生成浏览器可以识别的文件

入口entry
出口output
loaders webpack只能识别js 模块化
plugins
mode 开发环境（development） 生产环境（production）

webpack 
webpack-dev-server
进行指令的配置
package.json文件中进行配置 scripts中
npm run




*/